1. Field of the Invention
The present invention relates generally to digital communications technology applied to a transmitter/receiver in a base station and a transmitter/receiver in a mobile station having a turbo encoder. In particular, the present invention relates to a device and method for effectively implementing an interleaver for a turbo encoder. In addition, the present invention provides a technique for removing a puncturing-caused delay.
2. Description of the Related Art
The transmitters/receivers in digital communication systems include channel encoders and decoders. The most widely used channel encoders are convolutional encoders and turbo encoders. The turbo encoder has an internal interleaver that changes the order of data output from a memory relative to the original order of the memory data input by generating random read addresses.
In general, when puncturing a signal and outputting the next valid signal in the course of successive signal outputting, the puncturing causes an output delay, that is, non-successive output of valid signals before and after the puncturing. FIG. 1 is a block diagram of a conventional interleaver 10. In FIG. 1, reference numeral 11 denotes an address generator for generating addresses to change the sequence of input data when it is output. The address generator 11 generates (K−S) invalid addresses if the size S of the input data is less than the size K of a two-dimensional matrix. Reference numeral 12 denotes a puncturer for puncturing the invalid addresses.
FIG. 2 illustrates a puncturing-caused output delay in the conventional interleaver 10. Reference numeral 21 denotes an example of an output signal of the address generator 11 shown in FIG. 1. Marked portions 21A and 21B indicate the positions of the invalid addresses. The puncturer 12 receives the addresses in the signal 21 and outputs a signal 22 shown in FIG. 2, puncturing the marked invalid addresses. As seen from the signal 22, the address signal is non-continuous due to the puncturing and the address after the puncturing is delayed.
This conventional technology is applied mainly to channel encoders and channel decoders in UMTS (Universal Mobile Telecommunication System) and requires additional complex operations to process a delay.
FIG. 3 is a block diagram of a turbo encoder 35 for use as a channel encoder in the UMTS system. Transmission data is fed to a first component encoder 31 and an interleaver 32 through an input port 30 in the turbo encoder 35. The first component encoder 31 encodes the input data and outputs a first parity bit P1. The interleaver 32 changes the order of output data from the original order of the input data. A second component encoder 33 encodes the interleaved data and outputs a second parity bit P2. In the meantime, the input data is simply output as a systematic bit X. Thus, the turbo encoder 35 outputs the systematic bit X, the first parity bit P1, and the second parity bit P2 for the input transmission data.
A controller (not shown) in the UMTS system determines the size of the input data ranging from 40 to 5112 bits and notifies the turbo encoder 35 of the number of input bits. Then, the turbo encoder 35 encodes the input data. The input data varies in length. The interleaver 32 includes a memory for sequentially storing the input data as it is received, and an address generator for generating read addresses according to a predetermined interleaving rule in order to output the input data in a different order. For example, a two-dimensional matrix of size K with 15 rows R and 16 columns C is 240 (K=RC), which is needed to store input data of size S of 237 bits. Therefore, the memory sequentially stores the 237-bit input data in the 240 storing areas of the matrix, leaving 3 bits of storage area unused. The address generator generates addresses according to the interleaving rule. If an interleaving index I, generated according to a predetermined interleaving rule, is greater than the input data size S (237), the address is neglected. If the generated index I is less than or equal to the input data size S (237), data stored at the address in the memory is output to the second component encoder 33. Having to neglect the addresses larger than data size S causes non-continuous data transmission to the second component encoder 33, and creates a time delay. The delay makes it difficult to estimate an accurate processing time in the interleaver 32 and additional control circuitry is required to reconstruct the non-continuous data into a continuous data stream.
Therefore, a need exists for effectively implementing an interleaver for a turbo encoder and to provide a technique for removing a puncturing-caused delay.